package cn.trigram.lang;

import java.util.Objects;

public class ObjectUtil {

  public static boolean isNull(Object obj) {

    return Objects.isNull(obj);
  }

  public static boolean isNotNull(Object obj) {

    return !Objects.isNull(obj);
  }

  /**
   * 任意元素为null，返回true <br/> 数组本身为null，直接返回true
   */
  public static boolean isAnyNull(Object... objs) {

    if (isNull(objs)) {
      return Boolean.TRUE;
    }
    for (int i = 0; i < objs.length; i++) {
      if (isNull(objs[i])) {
        return Boolean.TRUE;
      }
    }
    return Boolean.FALSE;
  }

  /**
   * 没有元素为null，返回true <br/> 数组本身为null，直接返回false
   */
  public static boolean isNotAnyNull(Object... objs) {

    if (isNull(objs)) {
      return Boolean.FALSE;
    }
    for (int i = 0; i < objs.length; i++) {
      if (isNull(objs[i])) {
        return Boolean.FALSE;
      }
    }
    return Boolean.TRUE;
  }

  /**
   * 所有元素为null，返回true <br/> 数组本身为null，直接返回true
   */
  public static boolean isAllNull(Object... objs) {

    if (isNull(objs)) {
      return Boolean.TRUE;
    }
    for (int i = 0; i < objs.length; i++) {
      if (isNotNull(objs[i])) {
        return Boolean.FALSE;
      }
    }
    return Boolean.TRUE;
  }

}
